Dynamic Multithreaded Algorithms A Minicourse on Dynamic Multithreaded Algorithms

نویسندگان

  • Erik D. Demaine
  • Charles E. Leiserson
چکیده

This tutorial teaches dynamic multithreaded algorithms using a Cilk-like [11, 8, 10] model. The material was taught in the MIT undergraduate class 6.046 Introduction to Algorithms as two 80-minute lectures. The style of the lecture notes follows that of the textbook by Cormen, Leiserson, Rivest, and Stein [7], but the pseudocode from that textbook has been “Cilkified” to allow it to describe multithreaded algorithms. The first lecture teaches the basics behind multithreading, including defining the measures of work and critical-path length. It culminates in the greedy scheduling theorem due to Graham and Brent [9, 6]. The second lecture shows how parallel applications, including matrix multiplication and sorting, can be analyzed using divide-and-conquer recurrences. 1 Dynamic multithreaded programming As multiprocessor systems have become increasingly available, interest has grown in parallel programming. Multithreaded programming is a programming paradigm in which a single program is broken into multiple threads of control which interact to solve a single problem. These notes provide an introduction to the analysis of “dynamic” multithreaded algorithms, where threads can be created and destroyed as easily as an ordinary subroutine can be called and return. 1.1 Model Our model of dynamic multithreaded computation is based on the procedure abstraction found in virtually any programming language. As an example, the procedure FIB gives a multithreaded algorithm for computing the Fibonacci numbers:1 Support was provided in part by the Defense Advanced Research Projects Agency (DARPA) under Grant F3060297-1-0270, by the National Science Foundation under Grants EIA-9975036 and ACI-0324974, and by the SingaporeMIT Alliance. 1This algorithm is a terrible way to compute Fibonacci numbers, since it runs in exponential time when logarithmic methods are known [7, pp. 902–903], but it serves as a good didactic example.

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

A Minicourse on Dynamic Multithreaded Algorithms

This tutorial teaches dynamic multithreaded algorithms using a Cilk-like [11, 8, 10] model. The material was taught in the MIT undergraduate class 6.046 Introduction to Algorithms as two 80-minute lectures. The style of the lecture notes follows that of the textbook by Cormen, Leiserson, Rivest, and Stein [7], but the pseudocode from that textbook has been “Cilkified” to allow it to describe mu...

متن کامل

A Minicourse on Multithreaded Programming

These notes contain two lectures that teach multithreaded algorithms using a Cilk like model These lectures were designed for the latter part of the MIT undergraduate class Introduction to Algorithms The style of the lecture notes follows that of the textbook by Cormen Leiserson and Rivest but the pseudocode from that textbook has been Cilki ed to allow it to describe multithreaded algo rithms ...

متن کامل

Design and Evaluation of Dynamic Load Balancing Schemes under a Fine-grain Multithreaded Execution Model

The evolution of computer systems based on fine-grain multithreaded program execution models introduces both unique opportunities and tough challenges for the support of dynamic load balancing. Although load balancing is an active research topic in the distributed computing field, there is still a lack of a detailed study of the different dynamic load balancing strategies under a fine-grain mul...

متن کامل

Multithreaded Constraint Programming and Applications

MULTITHREADED CONSTRAINT PROGRAMMING AND APPLICATIONS by Fabian Zabatta Adviser: Professor Kenneth McAloon Constraint programming is a powerful and robust software technology for modeling and solving difficult combinatorial problems. However, as problems grow larger in scale and complexity, they become increasingly difficult to solve and their execution times can exhibit inordinate growth. One ...

متن کامل

Regular Symbolic Analysis of Dynamic Networks of Pushdown Systems

We introduce two abstract models for multithreaded programs based on dynamic networks of pushdown systems. We address the problem of symbolic reachability analysis for these models. More precisely, we consider the problem of computing effective representations of their reachability sets using finite-state automata. We show that, while forward reachability sets are not regular in general, backwa...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 2005